package main

import (
	"fmt"
	"math"
)

/*
一个数字最少能用多少个完全平方数相加得到
比如 10 = 9 + 1，结果就是2
15 = 9 + 4 + 1 + 1，结果是4
 */
func main() {
	var n int
	fmt.Scan(&n)
	// 贪心策略
	count := 0
	for {
		temp := math.Floor(math.Sqrt(float64(n)))
		n = n - int(temp) * int(temp)
		// fmt.Println(temp)
		count ++
		if n == 0 {
			break
		}
	}
	fmt.Println(count)
}
